package org.springblade.modules.admin.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.admin.entity.BuildingElevatorVisitor;
import org.springblade.modules.admin.vo.BuildingAlreadyVO;
import org.springblade.modules.admin.vo.BuildingElevatorVO;
import org.springblade.modules.admin.vo.BuildingElevatorVisitorVO;
import org.springblade.modules.admin.vo.ElevatorDetailVO;

import java.util.List;
import java.util.Map;

/**
 * @author: Sharry
 * @createTime: 2023/4/10 10:23
 * @version: Version-1.0
 */
public interface BuildingElevatorVisitorMapper extends BaseMapper<BuildingElevatorVisitor> {

	/**
	 * 根据项目名获取 项目-电梯列表
	 * @param
	 * @return 项目-电梯列表
	 */
	List<BuildingElevatorVO> getListByBuildingName(@Param("param") Map<String,String> param);

	/**
	 * 根据项目 id, 获取电梯详情列表
	 * @param buildingId 项目id
	 * @return 电梯详情列表
	 */
    List<ElevatorDetailVO> getDetailListByBuildingId(Long buildingId);

	/**
	 * 获取项目-已设置游客报障电梯数列表
	 * @return 已设置游客报障电梯列表
	 */
	List<BuildingAlreadyVO> getBuildingElevatorCount();

	/**
	 * 已设置可报障项目-电梯列表 分页
	 * @param buildingId 项目id
	 * @param page 分页信息
	 * @return 分页结果
	 */
    IPage<BuildingElevatorVisitorVO> getVisitorsElevatorsPage(Long buildingId, IPage<BuildingElevatorVO> page);

	/**
	 * 获取已提交项目-电梯树
	 * @return 项目-电梯树
	 */
	List<BuildingElevatorVO> getTree();

	/**
	 * 物理删除全部
	 * @param tenantId 当前租户id
	 */
	void deleteAll(String tenantId);
}
